home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Precision Software Appli…tions Silver Collection 1
/
Precision Software Applications Silver Collection Volume One (PSM) (1993).iso
/
tutor
/
physic4.exe
/
MATHCHIP.TXT
Wrap
Text File
|
1992-10-30
|
7KB
|
130 lines
October 30, 1992
I just bought and installed a math coprocessor in my computer. I have
several programs that benefit greatly from this upgrade. I have an
80386 DX / 33 Mhz computer. I chose a Cyrix 83D87 math chip. It is
basically a clone of the Intel 80387 with a lower price tag. The Intel
chip goes for about $180.00 by mail order usually, while the Cyrix can
be mail-ordered for about $135.00. Tomorrow the prices may be even
lower. In my case, the firm that I bought my computer from offers
upgrades to their customers at even lower prices. I paid $116.00.
A math chip does what is called "floating point math". Here's what that
means: Consider only whole numbers. If you add whole numbers, the sum
is a whole number. If you multiply or subtract whole numbers, the
result is always whole numbers. But if you divide 2 whole numbers, the
result may or may not be a whole number. The result may be a decimal
number. Division of whole numbers goes by a name in the math world
called `rational expression'. (In this paper I am using the term "whole
number" very loosely, it can include zero or negatives for my purposes
here. The type of whole numbers I mean can also be called integers).
Well, decimal numbers is what in the computer world is called floating
point math. In a computer without a math chip, decimal numbers are
handled by the CPU. (In my case, it would be handled by the 80386). But
it can be a tough, time-consuming process, in comparison to whole
number types of operations. There are 2 types of decimal numbers, one
eventually results in a repeating pattern, as in 2.000000000 or
2143333333333...etc (which is 643 divided by 300, the 3s never end).
Another might be 3.143789789789...etc, the 789s never end. The other
type has a non-repeating pattern, as in 1.2345678910 or 3.1415926535.
The repeaters are called rational numbers. The non-repeaters are called
irrational numbers. Here is how we know which is which: Division of
whole numbers results in rational answers. Division involving any
decimal numbers results in irrational answers.
In the ideal case, a math chip would always take over all decimal
operations. This would make for essentially 8 different kinds of math:
addition, subtraction, multiplication, and division of whole numbers,
and the same 4 operations involving any decimal numbers. The 8th is
called irrational math, also involving decimals (non-repeating decimal
patterns, that are gotten by dividing any decimals). The math chip
would then take over 5 of those 8 operations, since 5 of them are
floating point operations, allowing the CPU to do other stuff eight-
fifths of the time. Eight-fifths = 1.6, so then the computer would run
exactly 60% faster.
But alas, it isn't quite that simple. Software must be specifically
written to use the math chip. If it isn't, the chip remains idle. There
are 2 different kinds of such softwares: The kind that requires a math
chip to even run, and the kind that doesn't require it but uses a math
chip if it is there. I have several of the latter kind, including EZ
Cosmos (an astronomy program), Mercury (a math program), etc. EZ Cosmos
runs 5 times faster than it used to, and Mercury runs 5.5 times faster
than it used to. Many softwares don't use a math chip at all. I also
have other math-chip-aware programs. One must read the fine print.
Do not ever install a TSR math chip emulator. The only purpose of these
is to allow the running of programs that require a math coprocessor to
even run. If it works, you are running a huge risk of the program
crashing at an inconvenient time, resulting in lost data. Secondly,
many programmers know how to write software to tell the difference
between an emulator, and the real chip. If this programmer(s) happens
to be buddy-buddy with a math chip manufacturer, then he/she might
write their program to refuse to run if only an emulator is present.
Furthermore, for the kind of program that runs without a math chip, but
runs much faster with one, it won't run a smidgen faster if only an
emulator is present. Typically an author of an emulator wants anywhere
from $5.00 to $55.00 for their software emulator. Some will admit the
limitations and risks of their programs, while others won't. You are
much better off investing in the real chip for $116.00 to $180.00.
To change the subject, I will address the proof that division by zero
is not defined.
8
If you say --- = 2, you can check it by multiplying the result of 2
4 times the denominator of 4, and 2 x 4 = 8, the
numerator.
0
If you say --- = 0, you can check it by multiplying the result of 0
4 times the denominator of 4, and 0 x 4 = 0, the
numerator.
4
However, --- = what, because what x 0 = 4? This is undefined.
0
0
If you say --- = 0, guess what, that's wrong! The zero denominator may
0 as well be ANY number, since: 0 x Anything = 0.
Zero in the denominator is never defined. If you are doing a long,
complicated algebra problem, and somewhere along the line you end with
a zero denominator, then either
1) You made a mistake somewhere along the line.
2) The problem is trying to tell you it can't be solved.
If 2, then
A) Possibly useful; you have a vertical slope on your Cartesian graph.
B) Possibly useful; since you realize that you aren't working with a
function in this part of the problem.
C) Give up and try to think of something happy.
If you are using a math program, and for whatever reason a division by
zero is attempted, one of three things will happen:
1) The program recognizes the offense, notifies you, and gives you
a chance to correct things. So far this is a quality program.
2) The program recognizes the offense, and returns control of the
computer to the operating system. Annoying. Possible lost data.
3) The program does not recognize the error, and the computer "hangs",
and all you can hope to do is power down and re-boot. Infuriating.
Possible lost data. Try to think of something happy.
Actually, it takes under 10 lines of text source code for a programmer
to test for a zero denominator, if it's found then put a message on the
screen, abort the division before it's attempted, and return control
within the program to the request for input. Except for beginning
programmers, there's hardly an excuse to not program the computer this
way. In 2 and 3 this was left out, and it is up to the compiler (a
small part of every program) to either return to the operating system,
or to freak out and hang the computer (cheap compiler). Borland's Turbo
Pascal compiler simply jumps to the operating system.